标识分配给指针的地址大小
Identify the size of the address assigned to the pointer
在我下面的代码中:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZ 256 //arbitrary value
typedef char text_t;
text_t text[SIZ];
text_t *create_text()
{
text_t *c;
strcpy(text,"");
c= text;
return c;
}
int main()
{
text_t *point_to_text;
point_to_text=create_text();
printf("length of the returned pointer")
return 0;
}
我想分配 point_to_text 一个长度为零的字符串。我使用 strcpy(text,"");
来复制一个空字符串。在这种情况下,如何显示文本的长度为零。另外,如果我使用 strcpy(text,"abc");
,在这种情况下如何显示长度为 3?
你需要的是在返回的指针point_to_text
上使用strlen()
。
假设您要返回一个正确的 string [即以 null 结尾],strlen()
将为您提供字符串的长度,即字符串中存在的有效元素(不包括空终止符)。
你可以做到
printf("length of the returned string is %zu\n", strlen(point_to_text));
您可以使用
length = strlen(point_to_text);
C 中的字符串字面量是指存储在以空字符(\0) 结尾的连续内存位置的ASCII 字符代码。
strlen()
期望输入是指向以空字符(0 或 '\0')终止的常量字符字符串的指针。函数 returns 不包括空字符的字符串的长度。
在我下面的代码中:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZ 256 //arbitrary value
typedef char text_t;
text_t text[SIZ];
text_t *create_text()
{
text_t *c;
strcpy(text,"");
c= text;
return c;
}
int main()
{
text_t *point_to_text;
point_to_text=create_text();
printf("length of the returned pointer")
return 0;
}
我想分配 point_to_text 一个长度为零的字符串。我使用 strcpy(text,"");
来复制一个空字符串。在这种情况下,如何显示文本的长度为零。另外,如果我使用 strcpy(text,"abc");
,在这种情况下如何显示长度为 3?
你需要的是在返回的指针point_to_text
上使用strlen()
。
假设您要返回一个正确的 string [即以 null 结尾],strlen()
将为您提供字符串的长度,即字符串中存在的有效元素(不包括空终止符)。
你可以做到
printf("length of the returned string is %zu\n", strlen(point_to_text));
您可以使用
length = strlen(point_to_text);
C 中的字符串字面量是指存储在以空字符(\0) 结尾的连续内存位置的ASCII 字符代码。
strlen()
期望输入是指向以空字符(0 或 '\0')终止的常量字符字符串的指针。函数 returns 不包括空字符的字符串的长度。