0
我在想如何給C中的一個2 * 2字符數組中的行分配一個字符串值? 這可以用Java做這樣的:爲一行分配一個字符串值
char [][] array = new char[10][10];
array[1] = "foo".toCharArray();
我在想如何給C中的一個2 * 2字符數組中的行分配一個字符串值? 這可以用Java做這樣的:爲一行分配一個字符串值
char [][] array = new char[10][10];
array[1] = "foo".toCharArray();
在C中,你不能「分配」到一個數組。但是,您可以將的字符串文字(或任何字符串)複製到數組中。你只需要確保你不會造成緩衝區溢出:
char arr[10][10];
const char *str = "foo";
if (strlen(str) < sizeof(arr[1])) {
strcpy(arr[1], str);
}
或者,您可以分配到一個指針(它是一個指針數組的成員):
const char *arr[10];
arr[1] = "foo";
一不能真正地告訴你需要使用哪一個,除非你提供更多的上下文來確定你想要使用的數組。
我贊成這個答案只是因爲你指出內存泄漏到我的答案。 – haccks
@haccks很好,謝謝! :) – 2013-12-14 19:37:04