malloc

    2熱度

    1回答

    我有一個指向結構的指針,並嘗試釋放內存中的一個公共函數。所以我發送一個指針指向我的銷燬函數,如下面的代碼。 最初,我想取消分配stuct的char *成員,然後結構本身。 當我嘗試釋放成員時,它給了我Bus error (core dumped),但是單獨釋放結構是可以的! 注意:我添加了printf,我可以看到我可以在裏面打印字符串。 任何幫助將不勝感激。 const size_t name_s

    0熱度

    2回答

    我怎樣才能釋放一個字符串到某個點?例如,如果我有: char *s = (char *)malloc(sizeof(char) * 21); s[20] = '\0'; int i = 0; while (i < 21) { s[i] = i + 'a'; i++; } 然後我切斷串在某些時候和存儲半: *(s + 10) = '\0'; char *m = s

    1熱度

    2回答

    我有以下代碼,使用C的指針涉及 void f(void) { int a[4]; int *b = malloc(16); int *c; int i; printf("1: a = %p, b = %p, c = %p\n", a, b, c); c = a; for (i = 0; i < 4; i++)

    0熱度

    2回答

    我正在嘗試寫入我已使用malloc()分配的一個字節。我真的很難正確打印出位和值。 int main(){ unsigned char *heap = (unsigned char *) malloc(2 * sizeof(char)); //allocate two bytes int n= 2, i =0; unsigned char* byte_array

    1熱度

    1回答

    我正在macOS Sierra 10.12.3,Xcode 8.2.1和Instruments中運行一個C代碼的玩具示例來可視化內存泄漏和分配。 看來這兩個儀器都不能正常工作,或者編譯器或運行時引擎足夠聰明,可以自行解決內存泄漏問題。所有這一切,除非我在這裏犯了一個錯誤,這是一個非常真實的第三種選擇。讓我來解釋: 這是我的代碼,第一個版本: #include <stdio.h> #include

    -1熱度

    2回答

    此代碼給出分段錯誤。由GDB調試它給這個錯誤: "Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7a6dde5 in _IO_vfscanf_internal (s=, format=, [email protected]=0x7fffffffdba8, [email protected]=0x0) at vfsca

    0熱度

    1回答

    我正在閱讀編程:Bjarne Stroustrup使用C++的原理和實踐,我到了第27章,在那裏我遇到了一些可疑的東西。這是這行代碼: struct List* lst = (List*)malloc(sizeof(struct List*)); 我的問題是,不應該這樣寫爲: struct List* lst = (List*)malloc(sizeof(struct List)); 當我

    0熱度

    1回答

    int main() { int* Pointer; Pointer = (int*)malloc(sizeof(int)); *Pointer = 33; int * Pointer2 = Pointer; printf("%d\n", *Pointer); free(Pointer); free(Pointer2)

    0熱度

    1回答

    我正面臨使用opencv的sysmalloc錯誤。當我調試時發現錯誤發生在這裏: sm = cv::Mat::zeros(h,w,img.type()); 其中h和w分別是img行和w cols。我展示了他們,他們沒事。這裏是整個函數: cv::Mat gsmooth(cv::Mat img,int sigma,int radius,std::string methode) { c

    1熱度

    5回答

    是什麼malloc() -ed陣列和規則排列的區別時,在這兩個我必須指定內存大小,例如 char* arr = malloc(50 * sizeof(char)) VS int arr [50]