[英]Assigning string array to char**
我只是不能將字符串數組分配給我的char **指針。
我的字符串放在char *tempArr[12];
但是我不知道如何將它們分配給我的char ** arr變量。
首先,我使用以下方法分配內存: arr = (char**)malloc(numberOfElements * sizeof(char*));
然后,我嘗試為每個元素分配內存:
arr[i] = malloc(256 * sizeof(char));
我也嘗試只為char指針分配內存,但是都沒有用。 我的arr變量的結果是2到3個廢話字符。
有什么事嗎 我嘗試了所有我能找到的東西,結果是崩潰或廢話內容。
編輯:對不起,我會盡力澄清一下。 背景是,我正在將數據從文件加載到結構中。 每個結構都有char**
變量,該變量應該保存字符串數組。
在我的閱讀代碼中,我正在使用臨時數組char* tempArr[12]
並將字符串成功加載到其中。 然后,將其傳遞給創建結構的函數。
問題從這里開始,我試圖“轉換”我傳遞的數組,以便可以將其存儲在char** arr
變量中。
char *tempArr[12];
是指針數組。 所以如果你有類似的東西
tempArr[0] = malloc(20);
strcpy(tempArr[0],"hello");
然后在您做完之后就可以做。 即在為您的指針arr[i]
分配內存之后
char **arr = malloc(numberOfElements * sizeof(char*));
arr[i] = malloc(256);
strcpy(arr[i],tempArr[0]);
您可以循環執行上述步驟,以復制所有指針的值
我認為你的意思是
#include <string.h>
//...
size_t i;
char **arr = ( char** )malloc( numberOfElements * sizeof( char* ) );
for ( i = 0; i < numberOfElements; i++ ) arr[i] = malloc( 256 * sizeof( char ) );
for ( i = 0; i < sizeof( tempArr ) / sizeof( *tempArr ); i++ ) strcpy( arr[i], tempArr[i] );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.