下面的程序:[code] #inlcude "string.h" void main(void) { unsigned char j; // 1 unsigned char s1[10]; // 2 j = sizeof(&s1); // 3 memset(&s1,0x10,sizeof(&s1)); // 4 while(1){} // 5 }[/code] 这段程序单步跟踪运行到第四行时,j的值是对的,但运行到第五行时,j的值变为0x...
#include
实例代码: char* buf="buftest"; char r_buf[64]; printf("buf len:%d\n", strlen(buf)); printf("buf size:%d\n", sizeof(buf)); printf("r_buf len:%d\n", strlen(r_buf)); printf("r_buf size:%d\n", sizeof(r_buf)); 结果: buf len:7 buf size:4 r_buf len:0 r_buf size:64 以上为测试结果。 问题: 为什么sizeof(buf)=4而sizeof(r_buf)=64
问题:vector.size(),vector.capacity(),sizeof(vector)是怎么计算的,结果跟什么有关?
环境:
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-47)
代码:
#include
#include
char str[10]; memset(str,0,sizeof(str))和memset(&str,0,sizeof(str))的区别在那里? 请高手指点阿!!! [ 本帖最后由 wangjm213 于 2006-2-28 10:36 编辑 ]
请先看代码1:
#include
不要上机测试,否则便没有什么意义。
如下程序的输出是什么?
[code]
在intel x86(32-bit) platform.
#include
請問: char a[10]; cout << strlen(a) << endl; ===>;13 cout << sizeof(a) << endl; ===>;10 爲什麽會有這種區別? a有沒有分配内存?
char aa[10] ="abcd"; printf("%d\n",strlen(aa)); 这个结果为4 , 对的, 为什么下个题目就变成 15 我查了好多资料还是想不通这个题目!!! char a[10],strlen(a)为什么等于15? char aa[10]; printf("%d",strlen(aa)); 这也太奇怪了吧, char aa[1]; printf("%d",strlen(aa)); 结果为 7 这也太奇怪了吧, 请大家看看