gpt4 book ai didi

c - 指向数组的指针数组。在 PIC18 MPLAB IDE 中打印字符串

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:28 27 4
gpt4 key购买 nike

我正在使用 MPLAB IDE 编写用于 PIC 18 微 Controller 的 C 代码。我有 5 个字符串,我希望能够使用指针。这个想法是有一个包含指向字符串数组的指针的数组。并让它们打印在控制台上。下面的代码编译时没有错误或警告,但我在控制台上得到的只是垃圾。

有人能给我指出正确的方向吗?非常感谢。抱歉,如果我的代码格式不正确。

#include <stdio.h>
#include <p18f4520.h>
#include <stdlib.h>
#pragma config WDT = OFF

#define size 64

#pragma romdata s1=0x300 //specific ROM addresses for the data
rom char *s1[] = "Hello";
#pragma romdata s2 = 0x307
rom char *s2 = "Welcome to C programming";

#pragma romdata s3=0x31A
rom char *s3= "My name is ";

#pragma romdata s4=0x32C
rom char *s4 = "Pic18 program";

#pragma romdata s5=0x33A
rom char *s5 ="Goodbye, I hope this works!";


void printString(const char*);

void main (void)
{
int i=0;

char stringArray [] = {*s1, *s2, *s3, *s4, *s5};
char *ptr=stringArray;


while(i<5)
{
printString(&ptr[i]);
i++;
}
}

void printString( const char *strPtr)
{
while(*strPtr !='\0')
{
printf("%c", strPtr);
strPtr++;

}
}

`

最佳答案

这就是答案。

#include <stdio.h>
#include <p18f4520.h>
#include <stdlib.h>
#include <string.h>
#pragma config WDT = OFF

#pragma romdata s1=0x300 //specific ROM addresses for the data
rom char s1[] = "Hello";
#pragma romdata s2 =0x307
rom char s2[] = "Welcome to C programming";
#pragma romdata s3=0x41A
rom char s3[] = "My name is";
#pragma romdata s4=0x32C
rom char s4[] = "Pic18 program";
#pragma romdata s5=0x33A
rom char s5[] ="Goodbye, I hope this works!";

void printAndCount(rom char *strPtr);
int j=0; int i=0;
void main (void)
{
rom char* stringArray [] = {s1, s2, s3, s4, s5};
while(i<5 )
{
printAndCount(stringArray[i]);
i++;
}
}
void printAndCount(rom char *strPtr)
{
while (*strPtr != '\0' )
{ printf("%c", *strPtr);
strPtr++;
++j;
}
printf(" %d\n",j);
j=0;
}

关于c - 指向数组的指针数组。在 PIC18 MPLAB IDE 中打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7976811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com