在C中,为什么我不能写:
char **expectedPINs01 = { "0", "5", "7", "8", "9" };因为我有:
警告:从不兼容指针类型‘char*’初始化‘char**’
但可以这样写:
char *expectedPINs01[] = { "0", "5", "7", "8", "9" };有什么关系呢?
发布于 2022-04-09 07:22:12
当您编写char **时,您将获得足够的空间以供一个指针使用。如果您希望这样做像一个数组,那么您就必须要有足够的malloc空间来满足数组的大小,并填写条目。
当您编写char *x[5]时,您将获得足够的空间以供5个指针使用。
当您使用初始化速记时,您可以省略5,因为编译器可以从您的初始化器中看出,您希望为5个指针保留足够的空间,并且它为它们保留足够的空间,然后使用初始化程序速记来填充它们。
https://stackoverflow.com/questions/71805586
复制相似问题