相关疑难解决方法(0)

将结构数组传递给函数c ++

对不起这个菜鸟问题我只是有点困惑.
如果我在main中有一个结构数组,我想传递给一个函数:

struct MyStruct{
    int a;
    int b;
    char c;
    mayarray[5];
};  
MyStruct StructArray[10]; 

myFunction(StructArray[])
Run Code Online (Sandbox Code Playgroud)

传递给一个函数:

void myFunction(struct MyStruct PassedStruct[])
{
    PassedStruct[0].a = 1;
    PassedStruct[0].b = 2;
    // ... etc
}  
Run Code Online (Sandbox Code Playgroud)

我的问题是,会调用这样的函数修改数据StructArray吗?我需要它.这可以通过参考来打电话吗?我有点困惑.我如何更改它,以便当我将结构数组传递给函数时,该函数将修改数组StructArray?我正在使用视觉工作室顺便说一下.
谢谢.

c++ arrays parameters data-structures

18
推荐指数
2
解决办法
5万
查看次数

如何制作一个非空终止的c字符串?

我想知道:char*cs = .....;如果cs指向内存块但是没有'\ 0',那么strlen()和printf("%s",cs)会发生什么?我写这些线:

 char s2[3] = {'a','a','a'};
printf("str is %s,length is %d",s2,strlen(s2));
Run Code Online (Sandbox Code Playgroud)

我得到结果:"aaa","3",但我认为这个结果是因为'\ 0'(或0字节)恰好位于s2 + 3位置.如何制作一个非空终止的c字符串?strlen和其他c字符串函数严重依赖于'\ 0'字节,如果没有'\ 0',我只想更深入,更好地了解这条规则.

ps:通过研究SO上的帖子来激发我的好奇心. 如何将const char*转换为std :: string 以及该帖子中的这些单词:"这实际上比它看起来更棘手,因为除非字符串实际上是nul终止,否则你不能调用strlen."

c c++

5
推荐指数
4
解决办法
1万
查看次数

标签 统计

c++ ×2

arrays ×1

c ×1

data-structures ×1

parameters ×1