当前位置: 技术问答>linux和unix
关于malloc的问题
来源: 互联网 发布时间:2015-04-01
本文导语: 现定义两个指针 char *p1; int *p2; 对于 p1 = ( char * ) malloc( 128 ); p1 = ( char * ) malloc( 128 * sizeof( char ) ); 这两种申请方式有什么不同啊; 对于 p2 = ( int * ) malloc( 10 ); p2 = ( int * ) malloc(...
现定义两个指针
char *p1;
int *p2;
对于 p1 = ( char * ) malloc( 128 );
p1 = ( char * ) malloc( 128 * sizeof( char ) );
这两种申请方式有什么不同啊;
对于
p2 = ( int * ) malloc( 10 );
p2 = ( int * ) malloc( 10 * sizeof( int ) );
这两种申请方式有什么不同啊;
|
malloc (128) 分配 128bytes,malloc(128*sizeof (char)) 分配128个字符,在有些机器上,char可能不是一个byte.
|
p1 = ( char * ) malloc( 128 );
p1 = ( char * ) malloc( 128 * sizeof( char ) );
完全相同,C语言中char的长度就是1byte
p2 = ( int * ) malloc( 10 );
p2 = ( int * ) malloc( 10 * sizeof( int ) );
很大不同,
前一个的所指空间的大小是10,而后一个的所指空间的大小是40(如果一个int是4个byte的话),当然相同的是,他们都是整形指针
p1 = ( char * ) malloc( 128 * sizeof( char ) );
完全相同,C语言中char的长度就是1byte
p2 = ( int * ) malloc( 10 );
p2 = ( int * ) malloc( 10 * sizeof( int ) );
很大不同,
前一个的所指空间的大小是10,而后一个的所指空间的大小是40(如果一个int是4个byte的话),当然相同的是,他们都是整形指针