strlen
昨晚调试的时候出现了一个问题,分配大小为72B的字符数组,strlen的结果为78
那么问题就在strlen这里,它是以'\0'结尾的
因为这边实际传送的都不是字符串,而是数据,我是没有加'/0'传输的,也不会
但是用sizeof是有条件的
void test(char p[], char *p2) { printf("size %ld\n", sizeof(p)); printf("size %ld\n", sizeof(p2)); } int main() { char p[10]; printf("size %ld\n", sizeof(p)); test(p, p); return 0; }
输出为
size 10 size 8 size 8
8是64位机器的缘故。
因为作所以不加'\0',多传一个参数表示大小
posted on 2021-05-11 08:42 toughcactus 阅读(234) 评论(0) 编辑 收藏 举报