c語言常見錯誤



#include <stdio.h>
#include <stdlib.h>


int main(void)
{
    unsigned long l1 = 0xffffffff;
    int *j, *k, i = 2;

//  *k = 4; 錯誤用法,只爲指針分配了空間, 還沒爲內存指向分配空間, 程序將core dump.
    k = malloc(sizeof(int));;
    j = malloc(sizeof(int));;
    *k = 4;

//  free(k);
    free(j);
    j = k, k = &i;
//  k = &i;
    printf("test j:%d,k:%d\n", *j, *k);


/*
    if (l1 = ~0U)
        printf("test1:%lu,%d\n", l1, l1);
    else
        printf("not equal test1:%lu,%d\n", l1, l1);

    printf("test, int:%d, unsigned int:%d, unsigned long:%d\n", sizeof(int), sizeof(unsigned int), sizeof(unsigned long long));
*/

    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章