为结构内的 C 字符串分配内存,可以使用以下方法:
malloc()
函数分配内存:#include<stdio.h>
#include <stdlib.h>
#include<string.h>
typedef struct {
char *str;
} StringStruct;
int main() {
StringStruct str_struct;
str_struct.str = (char *) malloc(100 * sizeof(char));
strcpy(str_struct.str, "Hello, World!");
printf("String: %s\n", str_struct.str);
free(str_struct.str);
return 0;
}
calloc()
函数分配内存:#include<stdio.h>
#include <stdlib.h>
#include<string.h>
typedef struct {
char *str;
} StringStruct;
int main() {
StringStruct str_struct;
str_struct.str = (char *) calloc(100, sizeof(char));
strcpy(str_struct.str, "Hello, World!");
printf("String: %s\n", str_struct.str);
free(str_struct.str);
return 0;
}
strdup()
函数分配内存:#include<stdio.h>
#include <stdlib.h>
#include<string.h>
typedef struct {
char *str;
} StringStruct;
int main() {
StringStruct str_struct;
str_struct.str = strdup("Hello, World!");
printf("String: %s\n", str_struct.str);
free(str_struct.str);
return 0;
}
strcpy()
函数将字符串复制到已分配的内存中:#include<stdio.h>
#include <stdlib.h>
#include<string.h>
typedef struct {
char *str;
} StringStruct;
int main() {
StringStruct str_struct;
str_struct.str = (char *) malloc(100 * sizeof(char));
strcpy(str_struct.str, "Hello, World!");
printf("String: %s\n", str_struct.str);
free(str_struct.str);
return 0;
}
以上方法都可以用于为结构内的 C 字符串分配内存。在实际使用中,请根据具体需求选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云