我有動態分配的一些問題,因爲我不想指定數組的大小。基本上我在我的程序中需要的是將一個文件的名稱存儲在一個數組中,並確保它不會浪費空間。如何在C中動態分配名稱數組?
我試圖做類似創建陣列name[255]
,以確保它有足夠的空間,然後動態地分配它,所以它只有所需的空間,就像寫「matrix5」,然後將其存儲在name[255]
然後更改name[255]
到name[8]
。
char file_name[255];
printf("what is the name of the file? [.txt]\n");
scanf_s(" %s", file_name[255]); //store name eg: "matrix5"
i = 0;
char **fullpath;
while (file_name[i] != '\0' && i <=strlen(file_name))
{
fullpath= (char**)malloc(sizeof(char*)); //In here it would then make file_name[255] into file_name[8]
fullpath[i] = file_name[i];
i++;
}
我需要在這裏做什麼?
發佈您使用的代碼,樣本輸入和預期輸出。 – chux
一如既往,'scanf_s()'使用不正確。 – EOF
'scanf_s(「%s」,file_name);'缺少長度參數。 – chux