【发布时间】:2013-09-05 16:11:36
【问题描述】:
我是 C 的新手,我正在尝试让 C 例程正常工作。
const char *filenames[entry_count];
for (i = 0; i < entry_count; i++) {
char filename_inzip[256];
unz_file_info file_info;
err = unzGetCurrentFileInfo(uf, &file_info, filename_inzip,
sizeof(filename_inzip), NULL, 0, NULL, 0);
//This doesn't work. My array gets filled with the last entry over and over.
filenames[i] = filename_inzip; //Option 1
//Here I get SIGSEV errors, or gibberish in output when debugging values
strcpy(filenames[i], filename_inzip); //Option 2
}
我猜第一个赋值不起作用,因为它只是指向循环中 char[256] 的相同临时内存地址。
我认为第二个选项不起作用,因为我没有使用malloc 或类似的。
如何获得正确填充的数组?
【问题讨论】:
-
filenames[i]不是char数组。这是一个指针。