int counter = 0;
char *jpg_name;
sprintf(jpg_name, "%3i.jpg", counter);
FILE *photo = fopen(jpg_name, "w");
counter++;
我不断收到以下错误:“jpg_name”可在此功能中使用未初始化[-Werror =未初始化]
'jpg_name' may be used uninitialized in this function [-Werror=uninitialized]
我想写使用sprintf
功能的文件名。我想我必须以某种不正确的方式宣布char*
,但我不知道如何正确地做到这一点。
好的。这是一个数组,如果我需要三个字符,我应该malloc足够的内存三个字节,以及足够的字节为字符“jpg_name”? (任何数组中的第一个槽被数组的名称占用,对吧?) – hannah 2012-07-23 19:00:08
@newbie_hannah只需要计算符号的数量:-) – cnicutar 2012-07-23 19:00:56
您需要为所有要添加的字符分配足够的空间,以及1用于空终止符字符的附加插槽。没有插槽用于数组的名称,变量名称只是指向您分配的内存。 – pb2q 2012-07-23 19:01:02