gpt4 book ai didi

c - 我应该如何在 C 中实现 rollDice() 函数?

转载 作者:行者123 更新时间:2023-11-30 18:51:39 25 4
gpt4 key购买 nike

我尝试实现一个在一定时间内掷骰子的函数。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int * rollDice(int len) //len = times the dice is rolled.
{
int ints[len];

int i = len-1;


while(i>0)
{

ints[i--] = (rand()%6)+1;

}

return ints;
}


int main(int argc, const char * argv[])
{


int * ints = rollDice(10);

for(int i =0; i<10; i+=1)
{
printf("%d ",*(ints+i));
}
return 0;
}

程序总是打印这个,我的指针概念是错误的吗?

104 0 0 0 1919706998 2036950640 1667723631 1836545636 16 48 

最佳答案

你不能这样做

return ints;

它是在堆栈上声明的。您需要向其传递足够的内存,或者使用 malloc 在函数中分配内存并将其传回。

int * rollDice(int len) //len = times the dice is rolled.
{
int *ints = malloc(sizeof(int) * len);
int i = len-1;
while(i>0)
{
ints[i--] = (rand()%6)+1;
}
return ints;
}

关于c - 我应该如何在 C 中实现 rollDice() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36413160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com