鱼C论坛

 找回密码
 立即注册
查看: 1754|回复: 6

[已解决]二级指针字符串,使用总是存在越界问题

[复制链接]
发表于 2017-10-17 01:03:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

#include <stdio.h>
#include <strsafe.h>
int main()
{
   wchar_t **Word;

   
   Word=new wchar_t * [10];
   *Word=new wchar_t [10];
   


   Word[1]=L"123456";
   Word[0][1]=L'a';
   Word[1][1]=L'a';

   printf("%s",Word[1]);

   return 0;
}
其中Word[1][1]的调用有越界问题,想动态分配空间给字符串数组,对于这种二级指针字符串该如何操作,才能做增删查改的操作
最佳答案
2017-10-17 08:57:47
不是越界
  1. Word[1]=L"123456";
复制代码

这个Word[1] 指向了一个字符串常量
  1. Word[1][1]=L'a';
复制代码

这个操作企图修改字符串常量
所以错了
另外 printf是给普通字符串用的
宽字节字符串 你得用wprintf
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-17 08:57:47 | 显示全部楼层    本楼为最佳答案   
不是越界
  1. Word[1]=L"123456";
复制代码

这个Word[1] 指向了一个字符串常量
  1. Word[1][1]=L'a';
复制代码

这个操作企图修改字符串常量
所以错了
另外 printf是给普通字符串用的
宽字节字符串 你得用wprintf
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-17 11:14:49 | 显示全部楼层
求道于盲 发表于 2017-10-17 08:57
不是越界

这个Word[1] 指向了一个字符串常量

wchar_t **Word;
   
    Word=new wchar_t * [10];
   *Word=new wchar_t  [10];
   
   Word[0][1]=L'a';
   Word[1][1]=L'b';

这次调用,没有指向字符串,还是无法给Word[1][1]添加字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-18 16:27:03 | 显示全部楼层
请问是我的new方式有问题吗,Word[1]不能改变,如果我想从这些字符串数组中依次录入字符,应该怎么办
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-19 19:12:26 | 显示全部楼层
word[0][1],word[0][2],是里面的单个字符。,word是个指针数组,里面只有一个指针,指向的是 new wchar_t  [10],
  Word[0][1]=L'a';
  Word[0][2]=L'b';
这样就可以了,我也是初学一周,纯个人理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-19 19:50:31 | 显示全部楼层
懂了,我给二级指针new的时候是new 的 wchar_t * 形式,*word 只能是一个地址,是连续的字符串,不是连续的字符,在给地址赋值常量字符的时候就会出现错误,要想挨个录入字符,我的方式是,声明一个字符指针,来间接录入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-19 19:51:06 | 显示全部楼层
感谢各位大侠了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-16 21:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表