realloc

    0热度

    1回答

    我建立一个函数,将在我写的函数的工作文字删除一个字, 但是从某些原因,存储更多的则是我后,我分配等等完成它打印没有字,但符号和胡言乱语的新字符串。 请帮我理解为什么以及如何修复它,谢谢。 时,我很快就调试内存的变化,因为我用这个: newStr[k] = str[i]; char * newText(char * word, char *str) { int count = 0, in

    -5热度

    3回答

    我有一个动态的二维数组,大小是高度*宽度。 我想通过使用realloc更改数组大小。 这是我的代码,但它不工作。 我该怎么办?帮我!! int main(){ char **img; img = (char**)malloc(sizeof(char*)*height); for(i=0;i<height;i++){ img[i] = (char*)

    1热度

    1回答

    我使用下面的代码列出目录中的文件,然后将它们放入一个名为filename_list的长字符串中。该逻辑是 使用的strdup(“”)的环路 之前分配一个零字符,空终止字符*使用的realloc()来做到这一点,其保留增加其大小在每个迭代现有的内容。我通过将旧的长度添加到文件名的长度来计算新缓冲区的时间。 我使用strcat()将文件名附加到缓冲区。 它工作正常,直到它试图调用realloc()为导

    0热度

    1回答

    我的代码工作正常,直到我尝试释放分配的内存。我malloc编辑files指针,后来我用realloc来增加大小。但是当我尝试释放内存时,它给了我无效的指针错误,不知道为什么。 char *files = malloc(1); char *temp = strdup(argv[i]); strcat(temp, "/"); strcat(temp, dp->d_name); DIR *chi

    0热度

    1回答

    我想添加一个c字符串的扩展名,但我只是得到信号:SIGABRT(中止),谁能告诉我这是什么原因?这是我到目前为止已经完成,错误出现@ realloc的函数“prepareFileName”: #include <stdio.h> #include <string.h> #include <stdlib.h> #define OUT_OF_MEMORY 3 #define FILE_EX

    -1热度

    1回答

    我试图将结构复制到结构数组中。 我有一个具有顶点的动态分配的数组称为 vlist 和一个整数存储在所述VLIST顶点的数量的字段的图结构。 顶点有一个名称数组作为它们的内部字段。 函数我得到一个错误,需要一个图形和一个字符串,并将一个顶点添加到该图形中,该字符串作为顶点的名称。 下面是函数: int add_vertex(Graph *graph, const char name[]){

    1热度

    2回答

    我使用realloc替换malloc时出错。 下面的这段代码在我的电脑上运行正常。 int vector_grow(Vector* vec) { unsigned long newcap; int * newarr; if (0 == vec->cap) { vec->arr = (int*)malloc(START_CAPACITY * sizeof(*

    1热度

    1回答

    我正在尝试编写这个简单的代码,它将用户输入消息保存在堆栈中,然后再显示给他。 我不想限制用户输入的字符数,所以每次用户输入新字符时都使用动态内存分配。 如果用户输入小号码,代码运行良好。的字符,但它不起作用,如果用户键入一个很大的号码。的字符 例如:如果我输入“艾哈迈德”它会显示给我,但如果我输入更多字符的东西它不。 这是我的代码: #include <stdio.h> #include <st

    2热度

    3回答

    我有一个应该接收输入的程序,请记住最长的字符串并在EOF上打印出来。我的代码有效,但是当通过调试器运行时,会检测到内存泄漏。我在Windows中编译,没有像Valgrind这样的适当的调试器,所以我没有得到关于错误的很多信息。我能想象的唯一可能导致这种泄漏的是realloc()或free()函数。但是,我不够熟练地了解问题所在。 #include <stdio.h> #include <stdl

    0热度

    1回答

    很抱歉,如果这个问题是基本的,但我真的不明白为什么,如果我不添加“+ 1”节目不打印所有的字母 a = realloc(a,sizeof(char)*(i + 1)); 以及在这里 *(A + I)= letra; “a”的位置在每次通过时是否变大? 我认为情况并非如此,但我不太确定。 #include <stdio.h> #include <stdlib.h> char *copiarFr