c语言 指针数组与scanf

问题描述

c语言 指针数组与scanf
#include
#include

void get(char p[])
{
for (int i = 0; i < 3; i++)
scanf_s(""%s""p+i10);
}
void exchange(char *p[])
{
char *temp;
for (int i = 0; i < 2; i++)
for (int j = i + 1; j < 3; j++)
{
if ((strcmp(p[i] p[j]))>0)
{
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
void put(char *p[])
{
for (int i = 0; i < 3; i++)
{
printf(""%s""
(p + i));
printf(""
"");
}
}
int main()
{
void get(char *p[]);
void exchange(char *p[]);
void put(char *p[]);
char *p[3];
get(p);
printf(""
"");
exchange(p);
put(p);
}

之后总是程序停止工作

解决方案

c语言中的数组和指针
C语言指针数组
C语言 指针与数组

解决方案二:
get(char *p)

解决方案三:
你的指针数组没有分配内存空间。

解决方案四:
代码写的好乱。首先函数的申明应该放在main函数外。前面都已申明定义,可以不用再次申明。其次为指针数组p中每一个指针变量p[0]p[1]p[2]赋值时,你没有给它申请空间。当然会报错。

解决方案五:
scanf_s(""%s""p+i10);
改为:
scanf(""%s""p+i10);

时间: 2024-11-05 04:49:42

c语言 指针数组与scanf的相关文章

c语言指针数组 字符串-C语言指针数组查找问题

问题描述 C语言指针数组查找问题 #include#includevoid main(){ void input(char name[]int n); void sort(char *name[]int n); void print(char *name[]int n); void search(char *name[]int n); char *name[4]; int n=4; input(namen); sort(namen); print(namen); search(namen);}v

c语言-关于C语言指针数组的问题

问题描述 关于C语言指针数组的问题 #include int main(){ int all[5]; int *putin(); int *p=putin(); for(int k=0;k<5;k++,p++) printf("%d ",*p); return 0; } int *putin(){ int array[5]; printf("please enter 5 numbers:"); for(int i = 0;i<5;i++){ scanf(

c语言-关于C语言 指针数组的小问题

问题描述 关于C语言 指针数组的小问题 指针数组赋值(字符串)后,可以单独引用某一个字符串中的第X个字符(单个字符)吗?输出必须用%s 不能用%c ?? 解决方案 楼主是要这种吗? char *str[3] = {"skjf", "sd", "askjfssf"}; printf("%cn", str[0][3]); //打印出f printf("%cn", *(str[2] + 3));//打印出j 解决

c语言 指针数组作为函数参数问题

问题描述 c语言 指针数组作为函数参数问题 #include<stdio.h> #include<stdlib.h> void init_rec(day_record *arr[],FILE *file) { char temp[80]; int index=0; while((fscanf(file,"%s",temp))!=EOF) { arr[index]=NULL; arr[index]=(day_record * )malloc(sizeof(day_

C语言 指针数组详解及示例代码_C 语言

如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组.指针数组的定义形式一般为: dataType *arrayName[length]; [ ]的优先级高于*,该定义形式应该理解为: dataType *(arrayName[length]); 括号里面说明arrayName是一个数组,包含了length个元素,括号外面说明每个元素的类型为dataType *. 除了每个元素的数据类型不同,指针数组和普通数组在其他方面都是一样的,下面是一个简单的例子: #include <stdi

c语言-指针数组中的malloc用法

问题描述 指针数组中的malloc用法 #include #include void sort(char a[]); //将6,8行去掉 13 14 行a 改为p即可 int main() { char *a[5]; char **p; p = a; //等价于*p=a[0] int i; p=(char*)malloc(5*sizeof(char*)); //这一行不加的话后面的程序就能运行. for(i=0;i<5;i++){ a[i]=(char*)malloc(20*sizeof(cha

C语言 指针数组 和 指向指针的指针

指针数组 指针数组是一种特殊的数组,这类数组存放的全部是同一数据类型的内存地址.指针数组的定义形式为:     数据类型 *数组名[长度]; 例如: const char *c[4] = { "China", "USA", "Rassia", "Japan" }; // 定义长度为 4 的常量字符型指针数组,将数组元素分别指向 4 个 字符串常量 int i;for (i = 0; i < 4; i++){    put

C语言 指针与二维数组详解_C 语言

二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有"缝隙".以下面的二维数组 a 为例: int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; 从概念上理解,a 的分布像一个矩阵: 0   1   2   3 4   5   6   7 8   9  10  11 但在内存中,a 的分布是一维线性的,整个数组占用一块连续的内存: C语言中的二维数组是按行排列的,也就是先存放 a[

简单分析C语言中指针数组与数组指针的区别_C 语言

首先来分别看一下,指针数组的一个小例子: #include <stdio.h> #include <string.h> int lookup_keyword(const char*key, const char* table[], const int size) { int ret = -1; int i = 0; for(i=0; i<size; i++) { if (strcmp(key, table[i]) == 0) { ret = i; break; } } ret