首页 > 解决方案 > 如何将数组分配给指针?

问题描述

以下代码:

main(){
uint8_t id = 1;
uint8_t str[] = "shutdown 1";
uint8_t* (rcm)[];

rcm = &str; //line 83

返回第 83 行的警告:

invalid lvalue in assignment

有谁知道我该如何解决?我被困在这几个小时...

标签: arrayscpointersimplicit-conversionaddressof

解决方案


如果您有一个声明为的数组

uint8_t str[] = "shutdown 1";

那么指向数组第一个元素的指针看起来像

uint8_t *rcm = str;

如果你想声明一个指向整个数组作为单个对象的指针,那么你可以写

uint8_t ( *rcm )[11] = &str;

至于这张唱片

uint8_t* (rcm)[];

那么它不是指针的声明。它是一个大小未知且元素类型为 的数组的声明uint8_t *


推荐阅读