- 论坛徽章:
- 0
|
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
char m_sBegin[10];
char m_sEnd[10];
char *str1 = "200612102354200!612121212";
strncpy(m_sBegin, str1, ;
strncpy(m_sEnd, str1 + 12, 9);
m_sBegin[15] = '\0';
m_sEnd[15] = '\0';
printf("------%s------\n--------%s--------\n", m_sBegin,m_sEnd);
printf("m_sBegin:%d \n m_sEnd:%d \n str1:%d value:%d\n",&m_sBegin,&m_sEnd,&str1,str1);
return 0;
}
输出结果如下:
------20061210------
--------200--------
m_sBegin:804399808
m_sEnd:804399820
str1:804399832 value:536872448
我为m_sBegin只分配了10个字节的空间,可是从打印出来的结果看似乎给了m_sBegin 12个字节的空间,然后我又尝试了给m_sBegin 分配8个字节的空间,结果打印出来的还是分配了12个字节的空间,请高手给解答一下. |
|