相关疑难解决方法(0)

将一个结构复制到另一个结构

我知道我可以按成员复制结构成员,而不是我可以在结构上进行复制memcpy吗?

这样做是否明智?

在我的结构中,我有一个字符串也作为成员,我必须复制到具有相同成员的另一个结构.我怎么做?

c struct copy

53
推荐指数
5
解决办法
15万
查看次数

分配结构字段时,"错误:赋值给表达式,数组类型错误"(C)

我是初学C程序员,昨天我学习了C结构的使用以及这些结构可能应用于特定问题的解决方案.然而,当我尝试使用我的C IDE(Codeblocks 16.01)来学习C编程的这个方面时,我遇到了一个奇怪的问题.代码如下:

#include <stdio.h>

#define N 30

typedef struct{
     char name[N];
     char surname[N];
     int age;
} data;

int main() {
     data s1;
     s1.name="Paolo";
     s1.surname = "Rossi";
     s1.age = 19;
     getchar();
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

在编译期间,编译器(Windows下的GCC 4.9.3-1)向我报告了一个错误

"错误:赋值给表达式,数组类型错误"

在指导上

s1.name="Paolo" 
s1.surname="Rossi" 
Run Code Online (Sandbox Code Playgroud)

如果我这样做的话

data s1 = {"Paolo", "Rossi", 19};
Run Code Online (Sandbox Code Playgroud)

有用.我究竟做错了什么?

c arrays string struct initialization

31
推荐指数
3
解决办法
15万
查看次数

为什么不能分配相同类型和大小的数组?

如果我声明两个数组 - arr1并且arr2- 例如,int每个类型大小为10,并初始化第一个数组,并且我希望创建一个arr1in 的副本arr2; 为什么我不能给出指示arr2 = arr1呢?

我知道可以分配两种相同类型的结构.为什么不是阵列的情况?

c arrays

6
推荐指数
2
解决办法
3127
查看次数

我可以先声明一个数组并在以后给出它的值吗?

我试过这样做但是出错了.为什么我不能这样做?

int main()
{
char sweet[5];
sweet = "kova";
printf("My favorite sweet is %s\n", sweet);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

c arrays initialization assignment-operator

0
推荐指数
2
解决办法
227
查看次数

为什么这个C字符串赋值是非法的?

情况1:char s[][6]={"Hello","world"}; 在这种情况下,静态数组被分配在只读存储器中,并从那里将元素复制到数组中.在案例2中.

情况2:char* s= "hello world";将它放在只读存储器中.

所以我的问题是为什么

char s[][6]={"Hello","world"};
s[1]="lucky"; //is illegal
Run Code Online (Sandbox Code Playgroud)

因为如果从只读内存复制元素,那么为什么s[1]="lucky";不能将此语句从只读内存复制到数组,因为还为此字符串文字分配了一个数组,并从那里将元素复制到s [1].我已经阅读了很多答案,所有人都在说明有什么区别,但没有人说出原因?请解释,因为我是初学者.

c arrays

0
推荐指数
1
解决办法
361
查看次数

标签 统计

c ×5

arrays ×4

initialization ×2

struct ×2

assignment-operator ×1

copy ×1

string ×1