簡體   English   中英

Malloc是否需要分配更多內存?

[英]is Malloc allocating more memory then needed?

這是學校的C作業,但我遇到了一些奇怪的事情,我不知道它是否正常。

我必須采用命令行參數,其中一個例子是

-ia.b

所以在我的程序中,我使用malloc動態分配內存

char *fileName = NULL;
fileName = malloc(strlen(argv[i]) * sizeof(char));
//error testing etc
strcpy(fileName, argv[i]);

工作正常,但我通過visual studio調試器查看內存這是在內存位置分配的內容,對我來說是更多的空間,然后需要:

0x01608b98 "ÍÍÍÍÍýýýýB`\x1˜?`\x1\xf1¼O{º"

如果我轉換malloc如so fileName = (char*)malloc(strlen(argv[i]) * sizeof(char)); 我在內存中分配了這個:

0x009d8d38 "ÍÍÍÍÍýýýýB"

考慮到我的參數是5個字節,malloc是否應該分配更多的內存呢?或者我只是錯誤地做了這個?

通常malloc以塊的形式分配內存,可以被段大小等於16字節整除(即malloc分配具有基本對齊要求的塊)。 但是,您不應該依賴malloc的這種內部行為。 否則行為未定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM