相关疑难解决方法(0)

为什么我们不能使用整数指针声明数字数组

char *ch = "delhi";               // valid

int *arr = {1, 2, 3};             // invalid

int *arr = (int[3]){1, 2, 3};     // valid
Run Code Online (Sandbox Code Playgroud)

为什么上述某些陈述有效而其他陈述无效?

c c++ arrays string pointers

9
推荐指数
2
解决办法
750
查看次数

作为参数传递的复合文字的生命周期是多少?

使用clang编译时没有警告.

typedef struct {
  int option;
  int value;
} someType;

someType *init(someType *ptr) {
  *ptr = (someType) {
    .option = ptr->option | ANOTHEROPT,
    .value = 1
  };

  return ptr;
}

int main()
{
  someType *typePtr = init( &(someType) {
    .option = SOMEOPT
  });
  // do something else with typePtr
}
Run Code Online (Sandbox Code Playgroud)
  1. 这甚至是有效的C吗?

  2. 如果是这样的话:复合文字的生命周期是多少?

c struct compound-literals

7
推荐指数
1
解决办法
593
查看次数

C中结构中的字符串数组

说我们有,

typedef struct{
    char* ename;
    char** pname;
}Ext;

Ext ext[5];
Run Code Online (Sandbox Code Playgroud)

我想要做的是填充数据如下:

ext[0].ename="XXXX";
ext[0].pname={"A", "B", "C"};  // and so on for the rest of the array
Run Code Online (Sandbox Code Playgroud)

- 我很确定这不是正确的做法,因为我遇到了错误.请告诉我正确的方法.谢谢.

c arrays string struct

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

标签 统计

c ×3

arrays ×2

string ×2

struct ×2

c++ ×1

compound-literals ×1

pointers ×1