为什么会有警告呢~

chump345 2007-11-24 01:40:05
#include"stdio.h"
#include"conio.h"
#define N 4
void fun(char *m[]);
void main()
{int i,j;
char m[][N]={{"2354"},{"3444"},{"4343"},{"5434"}};
fun(m[N]);
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%c ",m[i][j]);
printf("\n");}
getch();}
void fun(char *m[])
{int i,j;
for(j=0;j<N;j++)
{m[0][j]='0';
m[N-1][j]='0';
}
for(i=1;i<N-1;i++)
{m[i][1]='0';
m[i][N-2]='0';
}
}

后面有个警告~fun(m[N])~指针转换后指向其它类型在main函数中
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
laurence-star 2007-11-24
  • 打赏
  • 举报
回复
#include"stdio.h"
#include"conio.h"

#define N 4 //表示所包含字符串的个数
void fun(char*,int);
void main()
{
int i;
char *m[N]={{"2354"},{"3444"},{"4343"},{"5434"}};

for(i=0;i<N;i++)
{
printf("%s ",m[i]);
printf("\n");
}
printf("\n*****************\n");
for(i=0;i<N;i++)
{
fun(m[i],i);
printf("%s ",m[i]);
printf("\n");
}
getch();
}

void fun(char* s,int i)
{
if(0 == i || N-1 == i)
{
while(*s && (*s++ = '0'));
/*while(*s != '\0')
{
*s = '0';
s++;
} */

}
else
{
*s++ = '0';
while(*s++);
*(s-2) = '0';
}
}
*************
运行结果:
2354
3444
4343
5434

*****************
0000
0440
0340
0000
_石头_ 2007-11-24
  • 打赏
  • 举报
回复
元素全部变成0
------------------------------
试试下面的代码:

#include<stdio.h>
#include<windows.h>

void fun(char *m, int m_len)
{
while(m_len--)
*m++='\0';

}

int main()
{
unsigned int len,i,j;
char m[4][5]={{"2354"},{"3444"},{"4343"},{"5434"}};
len=sizeof(m);
fun(&m[0][0],len);
for(i=0;i<4;i++)
for(j=0;j<5;j++)
printf("%#x, ",m[i][j]); /* '0'以%c形式输出,屏幕上看不到内容*/
system("pause");
return 0;
}
jiarusun000 2007-11-24
  • 打赏
  • 举报
回复
fun(m[N]); 相当于
fun("5434");
所以这里fun的形式参数实际上应该是count pointer,但是fun()的原型声明中形式参数是char *m[] 这样的话,编译器要负责类型转换.
chump345 2007-11-24
  • 打赏
  • 举报
回复
我需要实现的效果是将周边的元素全部变成0,该怎么改呢~
_石头_ 2007-11-24
  • 打赏
  • 举报
回复
首先一个很明显的错误
char m[][N]={{"2354"},{"3444"},{"4343"},{"5434"}};
你的N为4,而字符串"2354"需要5个char空间:'2','3','4','5','\0' 一共5个!
内容概要:本文提出了一种基于多时段动态电价的电动汽车有序充电策略优化方法,并通过Matlab代码实现对该策略进行仿真验证。该研究聚焦于缓解大规模电动汽车无序充电对电网造成的峰谷负荷压力,通过设计科学的多时段动态电价机制,引导用户在电网负荷低谷时段充电,从而实现削峰填谷、提升电网运行稳定性与可再生能源消纳能力的目标。文中建立了以电网负荷波动最小化和用户充电成本最低化为双重目标的优化模型,结合实际用电数据开展仿真分析,结果表明该策略能显著降低电网峰谷差,提高电力系统的经济性与运行效率。该资源属于“博士论文复现”系列,强调对高水平学术成果的还原与工程化实践,具有较强的理论深度与应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事新能源、智能电网、电动汽车等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习并复现已发表于博士论文或高水平期刊中的电动汽车有序充电优化模型;②研究需求响应机制下电价策略对用户充电行为的引导作用与弹性响应特性;③开发基于动态电价的充电管理系统原型,为智慧能源系统与车网互动(V2G)技术提供算法支持与决策依据; 阅读建议:此资源以Matlab代码为核心,建议读者结合文档内容与代码逐行分析,重点关注目标函数构建、约束条件设定及求解器调用过程,同时尝试修改参数或引入新变量以拓展模型适用范围,加深对优化算法与电力市场机制融合的理解。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧