第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么這樣循環(huán)輸出結(jié)果是錯誤的?求指點(diǎn)

為什么這樣循環(huán)輸出結(jié)果是錯誤的?求指點(diǎn)

C
互換的青春 2023-04-01 18:14:18
#include<stdio.h>#include<stdlib.h>int * fun(int n){  int arr[100];int m=n;int k=0;for(int i=2;i<m;i++){for(int j=2;j<=i;j++){if(i%j==0){if(m%j==0)break;elseif(j==i)arr[k++]=i; }}}return arr;}int main(void){int *p=fun(40); int len =10;for(int i=0;i<len;i++)printf("%d ",*(p+5));}這樣循環(huán)輸出結(jié)果是錯誤的,但是我手動一個一個的輸出就是正確的比如 printf("%d",*(p+0)), printf("%d",*(p+1)), printf("%d",*(p+2)), printf("%d",*(p+3))~~~~~`這樣就正確
查看完整描述

2 回答

?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個贊

fun函數(shù)內(nèi)arr是一個局部變量,return arr;是非法的,需要將int arr[100];改為:
int *arr=(int*)malloc(100*sizeof(int));
還有,printf("%d ",*(p+5));應(yīng)該為printf("%d ",*(p+i));

查看完整回答
反對 回復(fù) 2023-04-03
?
慕的地8271018

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個贊

printf("%d ",*(p+5)); 
這一句改成printf("%d ",*(p+i)); 
另外你fun返回的是局部變量 arr該變量的生命周期只在fun內(nèi) 
你在主函數(shù)里面賦值給了p是有安全隱患的 

int arr[100];應(yīng)改為 static int arr[100];

查看完整回答
反對 回復(fù) 2023-04-03
  • 2 回答
  • 0 關(guān)注
  • 174 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號