c - 如何使用双指针查找 2D 数组中列的长度?
问题描述
您好,对于我的程序,我需要找到使用双字符指针存储的单词的长度以制作一种二维数组。每当我尝试使用strlen
或sizeof(arr)/sizeof(arr[0])
它返回大量数字而不是每列存储的字符数量(字符串的大小)时。我认为这可能与空指针有关,但我不确定如果是这种情况,我将如何解决这个问题。
这是我用来尝试确定字符串大小的两行代码。第一个也迫使我重新启动终端,因为 ctrl+c 甚至不会停止它。当我打印它时,第二个只是返回一个非常非常大的数字。
int wordlength = sizeof(*(list+listPos))/sizeof(*(*(list+listPos)));
int wordlength = strlen(*(list+listPos));
解决方案
这里有一个样本:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char **arr;
arr=malloc(2*sizeof(char*));
*arr=malloc(20*sizeof(char));
strcpy(*arr,"Hello World");
int len=strlen((*arr+0));
printf("%s %d",*arr,len); //output Hello World 11
return 0;
}
当你这样写时:
strlen(*(list+listPos));
您试图从字符串数组中获取值,而只是从字符串中获取地址而不是其值。
推荐阅读
- django-rest-framework - 使用 Facebook 注册并在 Django-Rest 中创建用户个人资料
- jquery - 有人可以解释一下这在 jQuery 中是什么意思吗
- delphi - 从 Delphi 程序在 Edge 中打开本地文件
- php - simplexml_load_file 无法从 URL 获取数据
- powershell - 带有 powershell 的 Azure DevOps 任务内联脚本不会因错误而使任务失败
- nix - Cardano-node nix-build 错误:未找到选择路径“scripts.ff.node”中的属性“ff”
- r - 如何将频率表转换为数据框以制作条形图?
- ios - 如何快速从另一个视图控制器设置按钮的标题?
- javascript - TensorFlowJS 需要 HTML 吗?或者我可以从我的电脑上传图片和视频吗?
- ios - 为什么存档中缺少我的 swift 应用程序图标