程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 關於c語言的malloc的一個問題???-CSDN問答

關於c語言的malloc的一個問題???-CSDN問答

編輯:編程綜合問答
關於c語言的malloc的一個問題???

下面是一個malloc程序————malloc(-1)與malloc(0xffffffff),感覺結果應該一樣,但是不是這樣,不知道為什麼?求高手指教
int main()
{
char *pc;
printf("%u %x\n",-1,-1);
printf("%u %x\n",0xffffffff,0xffffffff);
if((pc = malloc(-1))==NULL)
printf("not malloc!\n");
else
printf("malloc ok!\n");

if((pc = malloc(0xffffffff))==NULL)
    printf("not malloc!\n");
else
    printf("malloc ok!\n");


return 0;

}
結果為:
4294967295 ffffffff
4294967295 ffffffff
not malloc!
malloc ok!

問題————既然-1與oxffffffff都一樣,為什麼一個為not malloc!,另一個為malloc ok!

最佳回答:


把你的代碼改成如下就可以啦:
我使用的是gcc通過啦,若是不行聯系我。
希望對你有幫助!

 #include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char *pc;
    printf("%u %x\n",-1,-1);
    printf("%u %x\n",0xffffffff,0xffffffff);
    if((pc=malloc((unsigned)-1))==NULL)
        printf("not malloc\n");
    else
        printf("malloc ok\n");
    if((pc=malloc(0xffffffff))==NULL)
        printf("not malloc\n");
    else
        printf("malloc ok\n");
    return 0;
}

ly601579033
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved