gpt4 book ai didi

c - int ** 数组变化值

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:48 24 4
gpt4 key购买 nike

所以我有一个int **。它包含像素值。我想做的是改变一组像素值的值;假设该值为 90,我想将其更改为创建 x 像素黑边所必须的最大级别。在过去的一个小时里,我一直在弄乱它,似乎无法弄清楚如何更改 **

中的实际值

这是我目前所拥有的:

int pgmDrawEdge( int **pixels, int numRows, int numCols, int edgeWidth, char **header ){
int i=0, j=0, count=0;

int intensity=atoi(header[2]);

while(count<edgeWidth){
for(; i<numRows; i++){
for(; j<numCols; j++){
pixels[i][j]=intensity;
}
}
count++;
}

return 0;
}

这是主函数调用:pgmDrawCircle(pixel, rows, cols, circleCenterRow, circleCenterCol, radius, header);

我认为我的想法是正确的,但就像我上面提到的,我似乎无法弄清楚如何让值(value)发生变化。

我不认为我需要,但我需要分配内存吗?它是从 main 传入的,所以我认为我不需要,因为它已经满了……对吗?

根据这里的请求是 pgmRead:

int ** pgmRead( char **header, int *numRows, int *numCols, FILE *in  ){
int i, j, temp, intensity;

fgets(header[0], maxSizeHeadRow, in);
fgets(header[1], maxSizeHeadRow, in);

fscanf(in, "%d %d", numCols, numRows);
fscanf(in, "%d", &intensity);
sprintf(header[2], "%d", intensity);

int **ptr=(int **)malloc(*numRows*sizeof(int *));
for(i=0; i<*numRows; i++){
ptr[i]=(int *)malloc(*numCols*sizeof(int));
}

for(i=0; i<*numRows; i++){
for(j=0; j<*numCols; j++){
fscanf(in, "%d", &temp);
ptr[i][j]=temp;
}
}

fclose(in);
return ptr;
}

在主函数中:

    int **pixel=NULL;
pixel=pgmRead(header, &rows, &cols, in);

if(strcmp(argv[1],"-e")==0){
printf("Edge Drawing\n");
pgmDrawEdge(pixel, rows, cols, edgeWidth, header);
}

最佳答案

您的 pgmDrawEdge 几乎可以正常工作,正如该测试所示。所以问题出在别处

#include <stdio.h>
#include <stdlib.h>
int pgmDrawEdge( int **pixels, int numRows, int numCols, int edgeWidth, char **header ){
int i=0, j=0, count=0;

int intensity=atoi(header[2]);

while(count<edgeWidth){
for(; i<numRows; i++){
for(; j<numCols; j++){
pixels[i][j]=intensity;
}
}
count++;
}

return 0;
}

int main() {
char *header[]={"abc","def","90"};
int *x[2];
int l1[]={1,2,3,4};
int l2[]={5,6,7,8};
x[0]=l1;
x[1]=l2;
pgmDrawEdge(x,2,4,99,header);
printf("result is %d should be %s", x[0][0], header[2] );
return(0) ;
}

关于c - int ** 数组变化值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306792/

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