我有3个文件:
1. main.c
2. testarray.c
3. header.h
我想创建全局变量名'arrayTwoD',它是一个二维数组。在'testarray.c'我想初始化数组并用's'填充值。该函数将在'main.c'上调用。
这是我的代码:
headerfile.h
#include <stdio.h>
void iniTwoDArray();
/*global variable 2d array not sure im doing correctly or not*/
extern char *arrayTwoD[2][3];
testarray.c
#include "headerfile.h"
#include <stdio.h>
char *arrayTwoD[2][3];
void iniTwoDArray() {
/*not sure if this is a good way to set the values */
memset(arrayTwoD, 's', sizeof(arrayTwoD[0][0]) * 2 * 3);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%c", arrayTwoD[i][j]);
}
printf("\n");
}
}
main.c
#include "headerfile.h"
int main() {
iniTwoDArray();
return 0;
}
在调试时,在testarray.c中,下面的行在执行后继续显示“读取字符串字符时出错”。错误显示在下面的屏幕截图中。我刚刚开始学习C,如果你能用外行的话向我解释,我真的很感激。
memset(arrayTwoD, 's', sizeof(arrayTwoD[0][0]) * 2 * 3);
答案 0 :(得分:0)
调试器试图提供帮助\聪明 - 它看到你的字符数组并假设它是字符串。 尝试做手表而不是查看自动窗口,它可能会更好地解码您的变量\
仅供参考:你可以做memset(arrayTwoD,&#39; s&#39;,sizeof(arrayTwoD))