- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的是 C 编程语言的初学者,我已经开始学习指针了……我在操作它们时遇到了一些问题。我想做的是读写一个矩阵,有 2 个函数,不使用全局变量(只是指针)......所以我没有成功做到这一点。我搜索了很多关于指针的信息,我试图理解如何使用它们,但我无法读写那个矩阵我做错了什么......拜托,拜托,请帮助我(即使有一些有用的关于 2DArray 和指针的链接)...谢谢!
#include <stdio.h>
#include <stdlib.h>
void readM(int (*x)[100][100], int *row, int *column)
{
int i,j;
printf("Row no: ");
scanf("%d",row);
printf("Column no: ");
scanf("%d",column);
printf("Matrix elemnts: \n");
for(i=0;i<(*row);i++)
{
for(j=0;j<(*column);j++)
{
printf("[%d][%d]=",i,j);
scanf("%d",x[i][j]);
}
}
}
void writeM(int (*x)[][100], int *row, int *column)
{
int i,j;
printf("\nMatrix is: \n");
for(i=0;i<(*row);i++){
for (j=0;j<(*column);j++){
printf("%d",(*x)[i][j]);
}
printf("\n");
}
}
int main()
{
char choice;
int a[100][100],m,n;
do
{
printf("\nChose an option\n\n"
"1) read matrix \n"
"2) write matrix\n"
"3) display matrix in spiral\n"
"4) return max and min\n"
///...etc
scanf("%c", &choice);
while (choice<'0'|| choice>'4')
{
printf("\nInvalid option! Chose again! \n\n");
scanf("%c",&choice);
}
switch (choice)
{
case '0': exit(0);
case '1': readM(&a,&m,&n); break;
case '2': writeM(&a,&m,&n);break; /// ... etc
} while (choice !=5);
getch();
}
最佳答案
另一个问题是,当您读取数组时,您首先跟随指针 (*x),然后添加数组偏移量 [i][j]:这可能会让您到达某个您不知道的内存位置甚至无法访问。由于您要传递的是一个指针数组,因此您应该先查看数字位置 (x[i][j]),然后再跟随指针。
编辑:之前的用户更新了他的答案以反射(reflect)我在这里给出的第二个建议,所以我删除了它。
关于C : Pointers and functions 2DArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212982/
我这样做是出于教育目的。 这就是想法: 我有类数组。我在类 Darray 中继承它,并添加必要的维度 它喜欢这样: 主要.cpp int main(int argc, char *argv[]) {
我正在探索 Julia 的并行计算并尝试了这个: a=dzeros(5);a[1]=5 但刚刚得到这个错误: setindex! not defined for DArray{{Float64, 1,
import numpy as np import scipy.ndimage from PIL import Image import urllib.request url = 'http://st
我有一个用于并行编程类的并行 I/O 项目,我必须实现派生数据类型。我不太清楚darray和subarray之间的区别。 darray 是否可以从动态分配的数组派生?主要区别是什么? 最佳答案 子数组
我是一名优秀的程序员,十分优秀!