小编sor*_*.va的帖子

动态分配的矩阵不允许输入

该程序需要简单地从键盘填充一个动态分配的矩阵。我必须补充一点,我包括。我正在使用 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)

c input matrix dynamically-generated

1
推荐指数
1
解决办法
72
查看次数

C char****数组动态分配行为尴尬

类似于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)

c string stream matrix dynamic-memory-allocation

0
推荐指数
1
解决办法
80
查看次数