该程序需要简单地从键盘填充一个动态分配的矩阵。我必须补充一点,我包括。我正在使用 C++ 编译器,因此我必须将强制转换添加到 malloc。似乎有这个错误:“ConsoleApplication42.exe 中 0x0F92FB53 (msvcr120d.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0xCDCDCDCD。” 在到达 get(a[i]) 命令时。调试后,它似乎在自由序列上也有一个非常合适的问题。
int main()
{
int n, i;
char **a;
printf("introduceti numarul de cuvinte:\n");
scanf("%d", &n);
a = (char**)malloc(n*sizeof(char*));
if (!a)
printf("alocare nereusita");
for (i = 0; i < n; i++);
{
a[i] = (char*)malloc(56 * sizeof(char));
}
for (i = 0; i < n; i++)
{
printf("introduceti urmatorul cuvant:\n");
gets(a[i]);
}
for (i = 0; i < n; i++)
free(a[i]);
free(a);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 类似于20个小时的事情已经过去了,我仍然不会想要得到什么问题.
首先,这些参数有主要功能.
char ***matrix;
int line, maxCollumn, i, j;
int lineData[100];
Run Code Online (Sandbox Code Playgroud)
然后我正在调用该函数
PutFirstAndLast(&matrix, &line, &maxCollumn, lineData);
Run Code Online (Sandbox Code Playgroud)
此函数用于动态分配我的矩阵并返回其行数和列数.lineData用于存储我在每行上有多少项,因为稍后在函数中我将用""填充"空"空格.
我的麻烦功能有这个标题
int PutFirstAndLast(char**** matrixPointer, int *line2, int *maxCollumn2, int *lineArray)
Run Code Online (Sandbox Code Playgroud)
在这个函数中,我将生成一个以半延迟方式"数组"调用的新矩阵,我将为新的"数组"分配内存,以便将每个单词从文件"in.txt"中放入其中.
int PutFirstAndLast(char**** matrixPointer, int *line2, int *maxCollumn2, int *lineArray)
{
FILE *inputFile;
char buffer[100], *p;
char ***array;
int i, j, collumn, maxCollumn = 0, line = -1;
inputFile = fopen("in.txt", "r");
while (fgets(buffer, 100, inputFile))
{
line++;
collumn = 0;
if (line == 0)
array = (char***)malloc(sizeof(char**));
else
array = (char***)realloc(array, sizeof(char**)* …Run Code Online (Sandbox Code Playgroud)