C 我如何处理指针?
我已经两天没解决这个问题了。 我不知道如何处理指针,我读过一些书,但它们只是告诉我们指针是什么,等等,而不是如何用结构或函数实现它们 这是一个简单的例子,我动态地分配一个C 我如何处理指针?,c,pointers,dynamic,allocation,C,Pointers,Dynamic,Allocation,我已经两天没解决这个问题了。 我不知道如何处理指针,我读过一些书,但它们只是告诉我们指针是什么,等等,而不是如何用结构或函数实现它们 这是一个简单的例子,我动态地分配一个char**,其中包含2^n行和n列。 如何初始化字符串,使其等于“\0”,因为它是指针?它为..提供了两个嵌套的错误。。我该怎么办 #include <stdio.h> #include <stdlib.h> #include <math.h> void alloc_str(char **
char**
,其中包含2^n
行和n
列。
如何初始化字符串,使其等于“\0”,因为它是指针?它为..提供了两个嵌套的错误。。我该怎么办
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void alloc_str(char **str,int n);
int main()
{
int i,j,n;
char **str;
printf("n: \n");
scanf("%d", &n);
alloc_str(str,n);
for(i=0;i<pow(2,n);i++)
for(j=0;j<n;j++)
str[i][j] = "\0";
return 0;
}
void alloc_str(char **str,int n){
int i;
str = malloc (pow(2,n) * sizeof(char *));
if(str == NULL) exit(1);
for(i=0;i<pow(2,n);i++){
str[i] = malloc(n * sizeof (char));
if(str[i] == NULL) exit(1);
}
#包括
#包括
#包括
void alloc_str(字符**str,int n);
int main()
{
inti,j,n;
字符**str;
printf(“n:\n”);
scanf(“%d”和“&n”);
异基因str(str,n);
对于(i=0;i
此表达式正在分配字符串。应使用单引号-
str[i][j] = '\0';
要进行初始化,不需要循环,可以使用memset
进行初始化,或者使用calloc
进行分配和初始化。问题是什么?看起来只有一个问题:“\0”
应该是'\0'
。如果您只想初始化到\0
,那么您可以使用calloc
而不是malloc
,正如我所说,2^n=1@ameyCU,没有必要这样做。特别是考虑到它是double
@giux,很高兴它有帮助:-)
str[i][j] = '\0';