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